package cn.infrabase.core.codec;

/**
 * 解码器接口。
 *
 * @param <T> 待解码的数据。
 * @param <R> 解码后的数据。
 * @author Weimin Gao
 * @since 1.0.0
 */
public interface Decoder<T, R> {

	/**
	 * 解码给定的数据。
	 *
	 * @param encoded 给定的数据（待解码的数据）。
	 * @return 解码后的数据。
	 * @throws DecodeException 如果给定的数据解码发生错误时。
	 */
	R decode(T encoded) throws DecodeException;
}
